# filecmp --- 文件及目录的比较
import filecmp

print(filecmp.cmp('bar', 'bar1', shallow=False))  # True
print(filecmp.cmp('bar', 'bisect-test.py'))  # False

print(filecmp.cmpfiles('', 'tst', ['bar', 'bar']))  # (['bar', 'bar'], [], [])

res = filecmp.dircmp('tst', 'tst1')
res.report()
'''
结果如下：
diff tst tst1
Only in tst : ['bar2'] # 只在 tst 中
Only in tst1 : ['bar1'] # 只在 tst1 中
Identical files : ['bar'] # 共同存在的文件
Differing files : ['bar3'] # 都存在但是不同的文件
'''
print('-------------')
res.report_partial_closure()  # 打印 a 与 b 及共同直接子目录的比较结果
res.report_full_closure()  # 打印 a 与 b 及共同子目录比较结果（递归地）
print(res.left, res.right)  # tst tst1
print(res.left_list, res.right_list)  # ['bar', 'bar2', 'bar3'] ['bar', 'bar1', 'bar3']
print(res.common, res.common_dirs, res.common_files, res.common_funny)  # ['bar', 'bar3'] [] ['bar', 'bar3'] []
print(res.left_only, res.right_only)  # ['bar2'] ['bar1']
print(res.same_files, res.diff_files, res.funny_files, res.subdirs)  # ['bar'] ['bar3'] [] {}
# 默认忽略文件
print(filecmp.DEFAULT_IGNORES)  # ['RCS', 'CVS', 'tags', '.git', '.hg', '.bzr', '_darcs', '__pycache__']
